package command.usuario;

import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import model.Pasta;
import model.Triagem;

import command.ICommand;

import dao.assinatura.PastaDAO;
import dao.assinatura.TriagemDAO;
import dao.fabrica.FabricaDAO;

public class AdicionarTriagemCommand implements ICommand{
	
	private String data;
	private String hora;
	private String naturezaAcao;
	private String encaminhamento;
	private String infoComplementar;
	private String obs;
	private String estadoCivil;
	private String comoSoube;
	private String renda;
	private String rendaComplementar;
	private String dependente;
	private String localResidencia;
	private String tipoImovel;
	private String situcaoImovel;
	private String religiao;
	private String necessidadeEspecial;
	private boolean resultado;
	private int pastaId;
	
	public String execute(HttpServletRequest request) throws ServletException, IOException {
			
			try {
				resultado = false;
				 naturezaAcao = request.getParameter("inputNatureza");
				 if (naturezaAcao == null)
				 {
					 return "/paginas/cadastro/triagem.jsp?p="+request.getParameter("p");
				 }
					  
				 data = new SimpleDateFormat("dd/MM/yyyy").format(new Date());
				 hora = new SimpleDateFormat("HH:mm:ss").format(new Date().getTime());
				 encaminhamento = request.getParameter("inputEncaminhamento");
				 infoComplementar = request.getParameter("inputComplemento");
				 obs = request.getParameter("inputObs");
				 estadoCivil = request.getParameter("inputEstadoCivil");
				 comoSoube = request.getParameter("inputComoSoube");
				 renda = request.getParameter("inputRenda");
				 rendaComplementar = request.getParameter("inputRendaComplementar");
				 dependente = request.getParameter("inputDependentes");
				 localResidencia = request.getParameter("inputResidencia");
				 tipoImovel = request.getParameter("inputImovel");
				 situcaoImovel = request.getParameter("inputSitImovel");
				 religiao = request.getParameter("inputReligiao");
				 necessidadeEspecial = request.getParameter("inputEspecial");
				 
				 pastaId = Integer.parseInt(request.getParameter("inputPastaId"));
				 
				 if (request.getParameter("aprovado") != null)
				 {
					 resultado = true;
				 }
				 
				 PastaDAO pastaDAO = FabricaDAO.createPasta();
				 Pasta pasta = pastaDAO.getPastaById(pastaId);
					if (pasta != null)
					{
						 Triagem triagem = new Triagem(data, hora, naturezaAcao, encaminhamento, infoComplementar, obs, estadoCivil, comoSoube, renda, dependente, rendaComplementar, localResidencia, tipoImovel, situcaoImovel, religiao, necessidadeEspecial, resultado);
						 TriagemDAO triagemDAO = FabricaDAO.createTriagem();
						 int triagemId = triagemDAO.addTriagem(triagem);
						 
						 pasta.setIdTriagem(triagemId);
						 pastaDAO.updatePastaTriagem(pasta);
					} 
				 
			} catch (SQLException e) {
				e.printStackTrace();
				return "/paginas/cadastro_invalido.jsp";
			}
			
			return "/paginas/cadastro/triagem.jsp?resultado=OK";
		}
}
